# 可跑任意java程序的docker image
FROM openjdk:8-jdk-alpine

VOLUME /app

# 设置时区 GMT+8
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

#添加环境变量
ENV PATH "$PATH:/app"
#设置时区为上海
ENV TZ "Asia/Shanghai"
# Java app 名称
ENV APPNAME ""
# app参数
ENV SP_PARAM ""
# jvm参数
ENV JVM_PARAM ""
# ENV JVM_PARAM "-Dloader.path=/app/lib/"

#设置开机启动脚本,内容为启动java程序
RUN echo -e "#!/bin/bash \n\
java -Djava.security.egd=file:/dev/./urandom \${JVM_PARAM} -jar /app/\${APPNAME} \${SP_PARAM}\
" >/start.sh && chmod u+x /start.sh

#ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/${APPNAME}"]
ENTRYPOINT ["/bin/sh","/start.sh"]

# 构建命令
# docker build -t java-docker .

# 使用命令
# 生产环境
# docker run -d --restart=always --net=host -v /opt/app/mind/:/app --name mind-module-scriptwriter -e APPNAME=mind-module-scriptwriter.jar -e JVM_PARAM=-Dloader.path=/app/lib/ -e SP_PARAM=--spring.profiles.active=prod java-docker
# 开发环境
# docker run -d --restart=always --net=host -v /opt/app/mind/:/app --name mind-module-scriptwriter -e APPNAME=mind-module-scriptwriter.jar -e JVM_PARAM=-Dloader.path=/app/lib/ java-docker
# 测试环境
# docker run -d --restart=always --net=host -v /opt/app/mind/:/app --name mind-module-scriptwriter -e APPNAME=mind-module-scriptwriter.jar -e JVM_PARAM=-Dloader.path=/app/lib/ -e SP_PARAM=--spring.cloud.nacos.config.extension-configs=mind-common-extension.yml java-docker

# 参数说明
# -v 指定程序存放目录
# -e APPNAME=base-gateway.jar 指定运行程序名称
# -e SP_PARAM=--spring.cloud.nacos.config.extension-configs=mind-common-extension.yml
# 还可以指定spingboot 额外参数 -e SP_PARAM=--spring.profiles.active=prod

# jvm参数 -e=JVM_PARAM